当前位置:flash课件吧→FLASH8.0教程→ flash cs3视频教程 flashcs3教程 flash cs3教程下载 flashcs3视频教程 flash cs3 pro教程 flash cs3教程网 flash cs3 实例教程 flashcs3教程下载 flash cs3教程 pdf flash cs3按钮教程

我站原创视频教程,网上视频教程学校,仅需要一个耳机+远程即可完成所有教学任务。

题 目:影片剪辑第8节实现补间动画

 

用AS实现补间动画

演示效果:

 

Flash mx.transitions.Tween类可以实现类似补间动画的效果。要使用Tween类,首先还是将它导入:
import mx.transitions.Tween;

然后用new Tween()方法即可实现。New Tween()方法格式:
new Tween(要应用补间的MC,要应用补间的MC的属性,缓动效果,属性的初始值,属性的结束值,补间的长度,补间长度的类型)

下面介绍一下new Tween()方法的参数。

要应用补间的MC:这个就是要应用补间的MC罗。

要应用补间的MC的属性:补间动画实际就是用一定的时间改变对象的属性,比如位移就是改变_x或_y属性,还有其它的如_xscal、_alpha等。这里就是指这些属性的名称。

缓动效果:在上一节我们已经介绍了。

属性的初始值:比如要用补间的是_x属性,我们要建立对象从舞台左边移到右边的补间动画,那么_x的初始值就应很小,比如0,10,50等,即对象在舞台左边时的_x值。

属性的结束值:补间结束时属性的值,比如对象移到舞台右边时的_x的值。

补间的长度:可以有两种表示方式:秒或帧,但这里只是一个数值,是用秒还是用帧来计算补间由后面一个参数来决定。

补间长度的类型:决定是用秒还是用帧来计算补间,如果为true则用秒来计算,如果为false则用帧来计算。

下面我们来制作我们的第一个补间动画,让一个小球从舞台的左边移到右边:
画一个球吧,转换为MC,实例名称为:ball_mc.

打开帧动作面板,输入如下代码:

import mx.transitions.Tween;
import mx.transitions.easing.*; //因为在用到缓动效果,所以将缓动类也导入
new Tween(ball_mc, "_x", None.easeNone, 20,500,3,true);

测试影片,小球将从左边(20像数处)移到右边(500像素处),用时3秒。

上面这个效果没有用缓动效果,我们回忆一下上一节介绍的缓动效果,似乎有一个叫Regular的缓动类,它将实现减慢的效果,我们给它调用easeIn方法,即在补间开始时减慢,这样是不是就实现了从慢到快的效果呢?将代码改成下面的:

import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(ball_mc, "_x",Regular.easeIn, 20,500,40,false);

测试影片,我们看到小球由慢到快从左边移到右边。在这段代码中,改变了三个参数,一个是缓动效果,一个是补间长度用了40,再一个就长度类型用了false,这样这个补间长度不再是3秒,而是40帧。

 

onMotionFinished事件:Tween类的onMotionFinished事件在补间动画完成时调用。在后面来练习它的用法。

continueTo() 方法:继续执行补间动画,它以原补间动画属性的结束值作为开始值。这个方法重新指定结束值和补间长度。也就是说在原补间动画的结束点上重新开始新的动画。

利用上面的事件和方法可使动画往返运动。

将代码改为下面的:

import mx.transitions.Tween;
import mx.transitions.easing.*;
vae mytween:Tween = new Tween(ball_mc, "_alpha",Nonse.easeNonse, 0,100,3,true);
mytween. onMotionFinished = function(){
mytween. continueTo(0,3)
}

测试影片,你会看到小球淡入然后又淡出的过程。
这段代码,我们做透明度的补间动画,使透明度用3秒时间从0变为100,当补间结束时,调用onMotionFinished事件代码,用 continueTo(0,3)方法又用3秒时间将透明度由100(刚才补间的结束值)变为0。因为要调用Tween的事件和方法,所以我们声明了一个 Tween类mytween,这一点也与上面的代码不一样。

yoyo()方法:

上面的代码虽然实现了,透明度由0到100,然后又从100回到0的动画,但回到0后,动画就停止了。我们常常需要不停的往返运动,比如闪烁的星星,跳动的心脏等。那么Tween类为我们提供了yoyo()方法,这个方法在补间结束时,将初始值变为结束值,将结束值变为初始值,再次进行补间,如此往返永不停止。

记得一个红星跳动的表情吗?我们现在来制作它:
画一个红星,转换为MC,实例名称为:hx_mc.

帧动作代码:

import mx.transitions.Tween;
import mx.transitions.easing.*;
var mytween:Tween = new Tween(hx_mc, "_xscale",Nonse.easeNonse, 80,100,0.5,true);
mytween.onMotionFinished = function(){
mytween.yoyo()
}

测试影片,我们看到了一个跳动的红星。看到这个效果,我突然发现,如果把红星换成一只蝴蝶,那不就让蝴蝶飞起来了吗?
这个例子应用补间的属性是_xscale.

下面我们来制用一个弹性菜单的练习,完成本节上面的动画:

首先来做弹性菜单,做4个MC,比较简单,画一个黄色的矩形,如果你高兴,当然可以用其它颜色,在矩形上面放一个静态文本,内容分别是:“加速滚动的球”,“闪烁的星”,“跳动的红心”,“飞动的蝴蝶”。

有两点要注意:

1.将字打散(两次),因为文本框在放大时会保持长宽比例,而我们弹出菜单时只需要改变高度,所以必须将文本打散。
2.因为菜单是向下弹开(增加高度),因此,元件必须上对齐。即上边与十字对齐。
3.矩形的高度为20,如果你的高度不是20,那么下面的代码就要作相应改变。
4个元件做好后,将它们拖到舞台上,放好。实例名称为: cd1,cd2,cd3,cd4

然后打开帧动作面板,输入如下代码:

import mx.transitions.Tween;
import mx.transitions.easing.*;
var cdtween:Tween;
function tc(cd) {
cdtween = new Tween(cd, "_height",Bounce.easeOut, 20,60,2,true);
}
cd1.onRollOver = function(){
tc(this);
}
cd1.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd2.onRollOver = function(){
tc(this);
}
cd2.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd3.onRollOver = function(){
tc(this);
}
cd3.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd4.onRollOver = function(){
tc(this);
}
cd4.onRollOut = function(){
cdtween.continueTo(20,1);
}

测试影片,一个弹性菜单就做好了。

以前我们说过,如果要多次使用的代码,最好做成函数,弹出菜单的代码在4个菜单项上都要调用,所以我们将它做成函数tc.这个函数,用Tween类使菜单 MC,的高度在2秒内由20变成60,达到弹出的效果,缓动则菜用了Bounce.easeOut,在菜单展开后产生一个弹跳的效果。在函数外声明 Tween对象:var cdtween:Tween;是为了在鼠标移出菜单时能够调用它。

接下来的代码是,在鼠标移动菜单上时,调用tc 使菜单弹出。在鼠标移出菜单时,调用Tween类的continueTo()方法,使菜单收回去。

接下来用上面介绍的内容,做4个MC,分别是,一个加速运动的小球,一个闪烁的星,一个跳动的红心,一个飞动的蝴蝶。在库中点右键,打开连接面板,为这4个MC取标识名:ballmc(小球),xingmc(星),hxmc(红心),hdmc(蝴蝶)。

回到主场景,打开帧动作面板,接着上面的代码,在每个菜单项上,添加点击加载相应mc的命令。

cd1.onRelease = function(){
attachMovie("ballmc","ball_mc",1)
ball_mc._y =200;
}
cd2.onRelease = function(){
attachMovie("hxmc","hx_mc",1)
hx_mc._y = 200;
hx_mc._x =260;
}
cd3.onRelease = function(){
attachMovie("xingmc","xing_mc",1)
xing_mc._x = 260;
xing_mc._y =200;
}
cd4.onRelease = function(){
attachMovie("hdmc","hd_mc",1)
hd_mc._x = 260;
hd_mc._y =200;
}

OK,试试吧。

 

 

 

省级FLASH课件制作培训请加我站管理QQ444860709 培训QQ专业群67042004。

FLASH8.0教程→ flash cs3视频教程 flashcs3教程 flash cs3教程下载 flashcs3视频教程 flash cs3 pro教程 flash cs3教程网 flash cs3 实例教程 flashcs3教程下载 flash cs3教程 pdf flash cs3按钮教程

期刊论文服务

合作期刊
学报期刊
 
获奖证书办理
本站已改版成新站 课件115学培吧http://www.kj115.com
在线咨询台